#pragma once

#include <SFML/Graphics.hpp>
#include "../Data/Node.h"

class LevelManager;

class GameEntity
{
public:
	GameEntity(int team);
	~GameEntity();

	virtual void OnNodeReached();

	virtual void Tick(float DeltaTime);
	virtual bool OnInput(sf::Event::KeyEvent* pKeyEvent, bool keyDown);

	void SetTeam(int team);
	int GetTeam();

	void SetSpeed(float speed);
	float GetSpeed();

	void SetProgress(float progress);
	float GetProgress();

	virtual void SetPosition(int nodeID);

	int GetCurrentNodeID();
	int GetDestinationNodeID();

protected:
	int m_pCurrentNodeID;
	int m_pDestinationNodeID;

	LevelManager* m_pLevelManager;

private:
	int m_team;
	float m_speed;	//speed per second
	float m_progress;

};